اگر با اتریوم آشنایی داشته باشید حتما نام برنامههای غیرمتمرکز یا dapp را شنیدهاید. برنامه غیرمتمرکز به عنوان دستاورد مستقیم پیدایش بلاکچین در نظر گرفته میشود.برنامههای غیرمتمرکز (dApps) همانطور که از اسم آن مشخص است برنامههایی است که به صورت غیرمتمرکز فعالیت میکنند یعنی شخص ثالت و متمرکزی آنها را کنترل نمیکند. برای اینکه بتوان برنامه غیرمتمرکزی ایجاد کرد حتما باید این برنامهها را بر روی بلاکچین اجرا کرد و بلاکچین اتریوم اولین مرجع برای ایجاد برنامههای غیرمتمرکز است. پس dapps برنامههای دیجیتالی هستند که در شبکههای بلاکچین همتا به همتا (P2P) و توزیع شده اجرا میشوند و تحت اختیار واسطه و هیچ شخصی قرار ندارند.
حال به بررسی انواع Dapp میپردازیم.
۱. دسترسی به بلاکچین از طریق نود خودشان ؛ حتی با وجود بلاکچینهای کوچک جدید ، اینکار یک بار سنگین بر دوش کاربر Dapp است زیرا مجبور هستند نود را بدون وقفه اجرا کنند و همگام سازی خود را ادامه دهند.
۲. دسترسی به بلاکچین از طریق یک گره قابل مشاهده در وب به صورت عمومی ؛ این گره باید به چندین کاربر خدمات ارائه کند. اما کاربران آن از دانلود و ذخیره مداوم دادههای بلاکچین راحت میشوند.
چشم انداز برنامه غیرمتمرکز به سرعت در حال تکامل است. در حالی که اتریوم بستر انتخابی محبوب برای توسعهدهندگان DAPP است، اما کاردانو، ترون، لیسک، کیوتام و نئو نیز برای توسعه DAPP محبوب هستند. همچنین تلاشهای بیشماری برای ساخت سایر سیستم عاملهای DAPP در مقیاس بزرگ در حال انجام است.
ویژگیهای برنامههای غیرمتمرکز
غیرمتمرکز بودن
برنامه غیرمتمرکز (DApp) باید غیرمتمرکز باشد؛ این بدان معناست که تمام ثبتهای عملکرد، اقدامات و تراکنشهای برنامه در دفترکل عمومی ذخیره شود. بنابراین برنامههای غیرمتمرکز بر روی بلاکچین یا شبکههای کریپتوگرافیک شبه بلاکچینی اجرا میشوند که هیچ سرور مرکزی یا شبکه سلسله مراتبی در آن وجود ندارد و تمام نودها (گرهها) با یکدیگر برابر هستند. این دفتر کل عمومی غیرمتمرکز باید برای تمام نودهای حاضر در برنامه غیرمتمرکز در دسترس باشد.
متنباز(Open Source)
بهتر است که یک برنامه غیرمتمرکز، بهصورت خودمختار مدیریت شده و تمام تغییرات آن بعد از توافق جمعی، یا کسب آرای اکثریت کاربران، اعمال شود. همچنین برای شفافیت لازم است که کد پایهٔ آنها در دسترس همه باشد.
طرحهای تشویقی
ویژگی تشویقی برنامه غیرمتمرکز براساس نیاز به ایجاد یک سیستم جایزه دهی است که نودهای شبکه را به حضور در برنامه غیرمتمرکز تشویق میکند. پس از حذف ویژگی متمرکزسازی در شبکه، این وظیفه به عهده نودها است تا به صورت انفرادی یا جمعی وظایف سرور مرکزی را انجام دهند. برنامههای غیرمتمرکز دارای توکنهایی هستند که مخصوص همان برنامه است و برای انجام تراکنشها و تایید بلاکچین برنامه مورد استفاده قرار میگیرند. این توکنها ارزشی را ذخیره میکنند تا به جایزه مناسبی برای حضور در شبکه برنامه غیرمتمرکز تبدیل شوند.
پروتکل
جامعهٔ کاربران لازم است روی یک الگوریتم رمزنگاری توافق کنند تا اثبات ارزش آن را نشان دهند. برای مثال، بیتکوین از اثبات کار (PoW) استفاده میکند و اتریوم نیز در حال حاضر از همین گواهی کار بهره میگیرد اما برنامههایی برای ایجاد یک گواهی دوگانه گواهی-کار (PoW)/گواهی-سهام (PoS) نیز در آینده دارد.
ساختار کلی برنامه غیرمتمرکز(Structure Of DApp)
برنامه ی غیرمتمرکز برنامهای است که به جای قرارگیری روی یک سرور متمرکز، روی بلاکچین عرضه میشود. این برنامهها قادر به تعامل با بلاک چین هستند که وضعیت تمام کاربران شبکه را مدیریت میکند. رابط کاربری برنامههای غیرمتمرکز هیچ تفاوت ظاهری با وبسایتها یا برنامههای موبایل ندارند. «قراردادهای هوشمند» (Smart Contracts) در واقع منطق بنیادیِ برنامههای غیرمتمرکز را به خوبی نشان میدهند.
قرارداد هوشمند کدی است که در بلاکچین اتریوم استفاده میشود و دقیقاً مطابق با برنامهریزی که شده، اجرا میشود. و پس از استقرار در شبکه، دیگر نمیتوانید آن را تغییر دهید. Dappها به صورت غیرمتمرکز هستند زیرا توسط منطق مندرج در قرارداد و نه توسط یک شخص یا شرکت کنترل میشوند. این همچنین بدان معنی است که شما باید قراردادهای خود را بسیار دقیق طراحی کرده و آنها را قبل از اجرا کاملاً آزمایش کنید.
برای آن که ساختار برنامههای غیرمتمرکز را توضیح دهیم، ابتدا بهتر است به ساختار برنامههای وب امروزی بپردازیم. برنامههایی که بر بستر وب اجرا میشوند در واقع از دو قسمت تشکیل شدهاند:
فرانتاند (FrontEnd)
بکاند (BackEnd)
فرانتاند در واقع به بخشی از برنامههای تحت وب اشاره دارد که کاربر با آن تعامل میکند. مانند برنامه رابط کاربری یا UI. بکاند در واقع آن قسمتی از نرمافزار است که آن را نمیبینیم و عملیاتهای مهم از جمله دخیره و تغییر دادهها در این بخش صورت میگیرد. معمولا این بخش از برنامه در سرورهای متمرکز اجرا میشوند و این همان بخشی است که برنامههای غیرمتمرکز نشانه رفتهاند.
برنامههای غیرمتمرکز در قسمت فرانتاند تفاوت چندانی با برنامههای معمولی تحت وب ندارند. آنچه که آنها را متمایز میکند، در واقع بخش بکاند است. بخش بکاند برنامههای غیرمتمرکز بر بستر بلاکچین قرار دارد و آنجا عملیات خود را انجام میدهد. بنابراین همه عملیات و تغییرات برنامههای غیرمتمرکز برای همگان آشکار است و با تایید اکثریت شبکه بلاکچین انجام میشود.
DAPPها اغلب دارای مشخصات زیر هستند:
- آنها روی بلاکچین اجرا میشوند
- کد آنها طوری نوشته شده که به صورت منبع باز و به طور مستقل عمل میکند بدون اینکه هیچ شخص یا گروهی آن را کنترل کند
- آنها توکنهای DAPP را تولید میکنند تا به نودهای فعال خود پاداش دهند.
- با دریافت توکن به کاربران اجازه دسترسی به آنها داده میشود
- هنگامی که ماینرها با موفقیت به اکوسیستم آنها کمک کردند، پاداش دریافت میکنند
قبل از معرفی انواع dapp، ما باید قراردادهای هوشمند را معرفی کنیم. زیرا بدون قرارداد هوشمند، برنامه غیرمتمرکز هم وجود نخواهد داشت.
انواع برنامه غیرمتمرکز براساس روش دسترسی به بلاکچین
- این برنامههای غیرمتمرکز روی بلاک چین خودشان قرار میگیرند. همچنین تمام ارزهای دیجیتال دیگری که با بلاک چین خاص خودشان عرضه میشوند در همین دسته قرار میگیرند. اینکار یک بار سنگین بر دوش کاربر Dapp است زیرا مجبور هستند نود را بدون وقفه اجرا کنند و همگام سازی خود را ادامه دهند.
- این نوع از برنامههای غیرمتمرکز از بلاک چین برنامههای نوع ۱ استفاده میکنند. این برنامههای غیرمتمرکز پروتکلهایی هستند که برای کار، به توکن مخصوص خود نیاز دارند تا تبادل ارزهای دیجیتال یا داراییهای دیگر را بین افراد و بدون درگیر شدن با اشخاص ثالث تسهیل کنند. «پروتکل امنی» (Omni Protocol) بهترین نمونه از برنامههای نوع ۲ محسوب میشود. امنی یک پلتفرم معاملاتی توزیعیافته است که به عنوان یک «لایه» روی بلاک چین بیتکوین توسعه یافته است.
- برنامههای غیرمتمرکز نوع ۳ از پروتکل برنامههای نوع ۲ استفاده میکنند. یک نمونه از این برنامههای نوع ۳ «سیف نتورک» (SAFE Network) است که مخفف «دسترسی امن برای همه» است. این برنامه یک شبکهٔ ذخیرهٔ داده و ارتباطات غیرمتمرکز است که مراکز داده و سرورها را با منابع محاسباتی اضافی کاربران جایگزین میسازد. این برنامه یک شبکهٔ دادهٔ خودکار است که به کاربران اجازهٔ ساخت وبسایتها و برنامههای مقاوم در برابر سانسور را میدهد. این برنامه از پروتکل امنی برای صدور «سیف کوین» (SafeCoin) استفاده میکند، که برای استفاده از خدمات کاربردی آن لازم است.
اتریوم پتلفرمی است که برای توسعه برنامه غیرمتمرکز طراحی و عرضه شده است. در حال حاضر حجم قابل توجهی از برنامههای غیرمتمرکز بر روی بلاکچین اتریوم توسعه یافته شده یا در حال توسعه است. برای استفاده از این برنامهها کاربران لازم است از توکنهای «اتر» (Ether) استفاده کنند که با نام ارز دیجیتال اتریوم هم آن را میشناسیم.اتریوم سه دسته اصلی برای DAPP را مشخص کرده است:
برنامههای مالی
برنامههایی که امور و تراکنشهای مالی را پشتیبانی میکنند. برنامههای مالی به عنوان برنامههای DeFi که مخفف decentralized finance یا امور مالی غیرمتمرکز نیز شناخته میشوند. ایده استفاده از بلاکچین در این برنامهها برای بهبود کاربردهای مالی پیچیده – مانند وام ، وصیت نامه و بیمه – و استیبل کوینها با هدف تثبیت قیمت ارزهای رمزنگاری صورت گرفته است.
برنامههای نیمه مالی
برنامههای غیرمتمرکز که شامل امور مالی میشوند ، اما همچنین به دادههای دیگری مانند دادههای خارج از بلاکچین اتریوم نیز نیاز دارند.نوع دوم برنامهها مشابه نوع اول است ، اما همانطور که بوترین در وایت پیپر اتریوم آورده است، این دسته از برنامهها ترکیبی از امور مالی و غیر مالی هستند. به عنوان مثال توسعه دهندگان پاداشهایی را تنظیم در نظر میگیرند که فقط در صورت انجام یک کار خاص به کاربر اهدا میشود. مثلا در فیلمهای وسترن ، پاداشهایی برای افرادی که بتوانند فرد یا مجرمی را دستگیر کنند تعیین میشود. در این برنامهها کاربران ممکن است برای حل یک مسئله محاسباتی دشوار پاداش بگیرند. نکته مهم در اینجا این است که قراردادهای هوشمند قادر به تشخیص صحت شروط و اعمال صورت گرفته توسط کاربر خواهند بود و بر اساس این تشخیص پاداش کاربر اهدا میشود. مثال دیگر این برنامهها بیمه است. مثلا فرض کنید که یک کشاورز بیمهای را خریداری میکند که اگر خشکسالی محصولاتش را از بین برد ، به طور خودکار هزینهاش را پرداخت میکند.
سازمانهای مستقل غیرمتمرکز DAO
در این نوع برنامهها، تمامی قوانین مشخص و برنامهریزی شده برای مثال در مورد اینکه در نهادها چه کسانی میتوانند عضو شوند، چگونه اعضا میتوانند رأی دهند، چه مشاغل یا فعالیتهایی میتوانند انجام دهند و نحوه تعویض توکنها، یا ارزش آنها چگونه انجام میشود. پس از اجرای آنها، DAPPها طبق قوانین خود به طور مستقل عمل میکنند. اعضای آنها میتوانند از نظر جغرافیایی در هر مکانی باشند.
اکثر DAPPهای دسته ۲ و دسته ۳ از سیستم عامل اتریوم استفاده میکنند. از پرکاربردترین DAPPها که بر روی اتریوم فعال هستند میتوان به یونیسواپ، کامپوند، Cryptokitties و بسیاری دیگر اشاره کرد. با اینکه بیشتر برنامههای غیرمتمرکز بر روی اتریوم فعالیت میکنند اما در بلاکچینهای دیگر نیز برنامههای غیرمتمرکز مانند IPSE در ایاس و WINk در بلاکچین ترون اجرا میشوند.